using System;
using Dimebrain.TweetSharp.Core.Web;

namespace Dimebrain.TweetSharp.Fluent
{
    /// <summary>
    /// The interface describing a Twitter leaf node in the fluent expression tree.
    /// </summary>
    public interface ITwitterLeafNode : ITwitterNode
    {
        string AsUrl();

        ITwitterLeafNode AuthenticateAs(string username, string password);

        ITwitterLeafNode CallbackTo(WebCallback callback);

        ITwitterLeafNode RepeatEvery(TimeSpan timeSpan);

        ITwitterLeafNode RepeatAfter(TimeSpan timeSpan, int times);

#if !SILVERLIGHT
        string Request();
#endif

        void RequestAsync();
    }
}